package Main;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * Created with IntelliJ IDEA.
 * User: twobox
 * Date: 2020/3/14
 * Time: 17:49
 * Description:TCP 服务器， 文件发送
 */
public class TCPServer {
    public static void main(String[] args) throws IOException {
        // 创建TCP 服务器， 监听8889端口
        ServerSocket serverSocket = new ServerSocket(8889);
        System.out.println("启动服务端TCP，监听8889端口！");
        // 当有用户连接的时候 会创建一个socket
        Socket socket = serverSocket.accept();
        // 获得想网络另外一头发消息 的网络输出流
        OutputStream out = socket.getOutputStream();
        // 返回一个文件
        // 创建一个文件对象
        File file = new File("G:\\视频\\十四届超梦（上）.mp4");
        // 创建输入留
        InputStream fileIn = new FileInputStream(file);
        // 循环发送
        byte[] fileBytes = new byte[1024]; // 每次发100 B;
        int len = -1; // 用于记录每次输入文件流输入多少数据
        int num = 0; // 纪录发了多少次
        while ((len = fileIn.read(fileBytes)) != -1) {
            out.write(fileBytes, 0, len); // 发送fileByte 字节串的，0开始，len长度
            num++;
        }
        System.out.println("传输结束，一共发送：" + num + "次");
        // 关闭连接
        out.close();
        fileIn.close();
        socket.close();
        serverSocket.close();
    }
}
